import '06-Class.dart';

// 1. 声明一个混合体
mixin Piloted {
  int astronauts = 1;

  void describeCrew() {
    print('Number of astronauts: $astronauts');
  }
}
mixin Piloted2 {
  int astronauts = 2;

  void describeCrew() {
    print('Number of astronauts2: $astronauts');
  }
}

// 2. 使用with 把Piloted中的属性和方法合入到PilotedCraft中
class PilotedCraft extends Spacecraft with Piloted, Piloted2 {
  PilotedCraft(super.name, super.launchDate);
}

// 使用混合体（可多个），只能单继承
// 出现同名时，后面的会覆盖前面的
void main() {
  PilotedCraft("xxxx", DateTime.now()).describeCrew();
}
